<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>vue3-escook</title>
  <link rel="stylesheet" href="./lib/style.css">
  <script type="importmap">
    {
      "imports" : {
        "vue": "./lib/vue-3.4.29.js"
      }
    }
  </script>
  <script type="module">
    import { createApp, ref } from 'vue'

    const app = createApp({
      setup() {
        const flag = ref(true)
        const score = ref('F')
        const show = ref(true)
        const flag2 = ref(true)

        return {
          flag,
          score,
          show,
          flag2
        }
      }
    })

    app.mount('#app')
  </script>
</head>

<body>
  <div id="app">
    <!-- 如果 v-if 后面的值计算的结果是布尔值 true，表示被 v-if 控制的元素，需要被显示到页面上； -->
    <!-- 如果 v-if 后面的值计算的结果是布尔值 false，表示被 v-if 控制的元素，不需要被显示到页面上； -->
    <h1 v-if="flag">这是使用 v-if 控制的 h1 元素</h1>
    <button @click="flag = !flag">Toggle</button>
    <hr>

    <p>评分：{{ score }}</p>
    <p v-if="score === 'A'">优秀</p>
    <p v-else-if="score === 'B'">良好</p>
    <p v-else-if="score === 'C'">一般</p>
    <p v-else>重修</p>

    <hr>

    <button @click="show = !show">Toggle Show</button>
    <!-- 在 Vue 中，template 是一个虚拟的容器元素，不会被渲染为任何实际的标签，只起到包裹元素的作用 -->
    <template v-if="show">
      <p>锄禾日当午，</p>
      <p>汗滴禾下土。</p>
      <p>谁知盘中餐，</p>
      <p>粒粒皆辛苦。</p>
    </template>

    <hr>
    <button @click="flag2 = !flag2">Toggle</button>
    <p v-show="flag2">这是被 v-show 控制的元素</p>
  </div>
</body>

</html>